<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="pre-why">
  <?dbhtml filename="package-choices.html"?>

  <title>Информация о пакетах, используемых в этой книге</title>

    <para>Как говорилось ранее, целью проекта Linux From Scratch является
    сборка системы базового уровня. Она будет включать в себя пакеты необходимые для репликации и распространения, а также
    относительно небольшой набор программ, с помощью которых можно расширять систему в любом направлении на ваше усмотрение. Это не значит, что LFS является максимально компактной. Есть пакеты, которые включены но строго не требуются. В списке, который расположен ниже,
    имеются описания для каждого пакета.</para>

    <itemizedlist>

      <listitem>
        <para>Acl</para>
        <para>Access Control List или ACL — список управления доступом, который определяет, кто или что может получать доступ к объекту (программе, процессу или файлу), и какие именно операции разрешено или запрещено выполнять субъекту (пользователю, группе пользователей).Данный пакет содержит утилиты для администрирования списками управления доступом (ACL).</para>
      </listitem>

      <listitem>
        <para>Attr</para>
        <para>Программы для администрирования расширенных атрибутов объектов файловой системы.</para>
      </listitem>

      <listitem>
        <para>Autoconf</para>
        <para>Программы для воспроизведения сценариев командной оболочки
         которые могут выполнять автоматическую настройку исходного кода из определенного пользовательского
         файла-шаблона. Он также необходим для повторной компиляции пакета после обновления процедур сборки.</para>
      </listitem>

      <listitem>
        <para>Automake</para>
        <para>Программы для создания файлов Makefile для использования его программой Autoconf. Он также необходим для повторной компиляции пакета после обновления процедур сборки.</para>
      </listitem>

      <listitem>
        <para>Bash</para>
        <para>Усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Этот пакет выполняет требования стандарта LFS Core для обеспечения интерфейса Bourne Shell в системе. Он был выбран из числа других оболочек из-за
        широкого распространения, возможностей которые выходят далеко за пределы базовых функций
        программ-оболочек.</para>

      </listitem>

      <listitem>
        <para>Bc</para>
        <para>Произвольный язык обработки числовой точности. Он необходим для сборки Linux ядра.</para>
      </listitem>

      <listitem>
        <para>Binutils</para>
        <para>компоновщик, ассемблер, и другие утилиты и инструменты для работы с
        объектными файлам. Программы в этом пакете необходимы для компиляции как большинства пакетов системы LFS,
        так и многих пакетов за её пределами.</para>
      </listitem>

      <listitem>
        <para>Bison</para>
        <para>GNU версия yacc (Ещё один компилятор компиляторов)
         необходимый для сборки некоторых пакетов для системы LFS.</para>
      </listitem>

      <listitem>
        <para>Bzip2</para>
        <para>Программы для сжатия и распаковки файлов. Он необходим для
        распаковки многих пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Check</para>
        <para>Средства тестирования для других программ.
        Он будет установлен только во временный инструментарий.</para>
      </listitem>

      <listitem>
        <para>Coreutils</para>
        <para>Программы для просмотра и манипулирования
         файлами и каталогами. Эти программы необходимы для управления файлами через командную
         строку, и необходимы для процедуры установки каждого пакета в LFS.</para>
      </listitem>

      <listitem revision="systemd">
        <para>D-Bus</para>
        <para>Программы которые реализуют систему межпроцессного взаимодействия,
         которая позволяет приложениям в операционной системе "общаться" друг с другом.
        </para>
      </listitem>

      <listitem>
        <para>DejaGNU</para>
        <para>Фреймворк для тестирования других программ.
        Он будет установлен только во временный инструментарий.</para>
      </listitem>

      <listitem>
        <para>Diffutils</para>
        <para>Программы, которые отображают разницу в содержимом между файлами и каталогами.
				Эти программы могут быть использованы, для создания патчей, а также они используются в процедурах сборки для большинства пакетов.</para>
      </listitem>

      <listitem>
        <para>E2fsprogs</para>
        <para>Утилиты для обработки файловых систем ext2, ext3 и ext4.
				Это наиболее распространенные и тщательно протестированные файловые системы, поддерживаемые Linux.</para>
      </listitem>

      <listitem revision="sysv">
        <para>Eudev</para>
        <para>Диспетчер устройств. Он контролирует записи в каталоге /dev, так как устройства добавляются или удаляются из системы динамически.
        </para>
      </listitem>

      <listitem>
        <para>Expat</para>
        <para>Небольшая библиотека для обработки (парсинга) XML. Она необходима для пакета модуля Perl -  XML::Parser.</para>
      </listitem>

      <listitem>
        <para>Expect</para>
        <para>Инструменты для автоматизации и тестирования, и является расширением к скрипт-языку Tcl, для многих интерактивных приложений. Он будет установлен только во временный инструментарий.</para>
      </listitem>

      <listitem>
        <para>File</para>
        <para>Утилиты для определения типов файлов. Некоторым пакетам требуется, чтобы этот пакет был установлен.</para>
      </listitem>

      <listitem>
        <para>Findutils</para>
        <para>Программы для поиска файлов. Программы предоставляют способы для рекурсивного поиска файлов по дереву каталогов, создания, обслуживания и поиска в базе данных (как правильно поиск выполняется быстрее, чем рекурсивный поиск, но менее надёжен, если база данных не в актуальном состоянии).</para>
      </listitem>

      <listitem>
        <para>Flex</para>
        <para>Утилиты для генерации программ, которые распознают шаблоны в тексте.Это GNU версия lex (lexical analyzer). Пакет необходим для сборки некоторых пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Gawk</para>
        <para>Программы для манипуляции с текстовыми файлами. Это GNU версия awk (Aho-Weinberg-Kernighan). Они используются в процедурах сборки для большинства пакетов.</para>
      </listitem>

      <listitem>
        <para>Gcc</para>
        <para>Набор компиляторов GNU, для таких языков, как C и С++. Поддержка других языков не предусмотрена в LFS</para>
      </listitem>

      <listitem>
        <para>GDBM</para>
        <para>Библиотека GNU Database Manager (менеджер баз данных GNU). Они используется пакетом Man-DB.</para>
      </listitem>

      <listitem>
        <para>Gettext</para>
        <para>Утилиты и библиотеки для работы с локализацией и интернационализацией необходимые для некоторых пакетов.</para>
      </listitem>

      <listitem>
        <para>Glibc</para>
        <para>Стандартная библиотека языка Си (GNU C Library). Linux программы не смогу без нее работать.</para>
      </listitem>

      <listitem>
        <para>GMP</para>
        <para>Библиотеки для математических вычислений и предоставляет полезные функции для вычислений с  плавающей точкой. Он необходим для того, чтобы скомпилировать пакет Gcc.</para>
      </listitem>

      <listitem>
        <para>Gperf</para>
        <para>Программа, которая генерирует отличные хэш функции из набора ключей. Она необходима для пакета Eudev.</para>
      </listitem>

      <listitem>
        <para>Grep</para>
        <para>Программа которая принимает на вход строки, отвечающие заданному регулярному выражению, и выводит их, если вывод не отменён специальным ключом. Пакет используется в процедурах сборки для большинства пакетов.</para>
      </listitem>

      <listitem>
        <para>Groff</para>
        <para>Программы для обработки и форматирования текста. Одна из самых важных функций - форматирование man страниц.</para>
      </listitem>

      <listitem>
        <para>GRUB</para>
        <para>Загрузчик операционной системы (GRand Unified Bootloader). Этот пакет один из многих загрузчиков, но он является самым гибким.</para>
      </listitem>

      <listitem>
        <para>Gzip</para>
        <para>Программы для сжатия и распаковки файлов. Он необходим, чтобы выполнять распаковку многих пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Iana-etc</para>
        <para>Данные для сетевых служб и протоколов. Он необходим для обеспечения правильных сетевых возможностей.</para>
      </listitem>

      <listitem>
        <para>Inetutils</para>
        <para>Программы programs для администрирования сетевых возможностей.</para>
      </listitem>

      <listitem>
        <para>Intltool</para>
        <para>Инструменты для извлечения переводимых строк из файлов с исходными кодами.</para>
      </listitem>

      <listitem>
        <para>IProute2</para>
        <para>Программы для работы с сетью по протоколам IPv4 и IPv6. Он был выбран из с других пакетов для работы с сетью из-за его поддержки IPv6 протокола.</para>
      </listitem>

      <listitem>
        <para>Kbd</para>
        <para>key-table файлы, утилиты для клавиатуры для не US наборов, а также консольные шрифты.</para>
      </listitem>

      <listitem>
        <para>Kmod</para>
        <para>Программы для администрирования модулей ядра Linux.</para>
      </listitem>

      <listitem>
        <para>Less</para>
        <para>Программа используемая для просмотра (но не изменения) содержимого текстовых файлов на экране. Она также используется пакетом Man-DB для просмотра страниц руководств.</para>
      </listitem>

      <listitem>
        <para>Libcap</para>
        <para>Интерфейсы пользовательского пространства для POSIX 1003.1e, доступные в ядрах Linux.</para>
      </listitem>

      <listitem>
        <para>Libelf</para>
        <para>Библиотека для обработки файлов формата ELF ( Executable and Linkable Format — формат исполнимых и компонуемых файлов).  формат двоичных файлов, используемый во многих современных UNIX-подобных операционных системах, таких как FreeBSD, Linux, Solaris и др. Также этот формат используется и во многих других системах. Большинство утилит доступны в других пакетах, но эта библиотека необходима для сборки ядра Linux используя конфигурацию по умолчанию (и наиболее эффективную).</para>
      </listitem>

      <listitem>
        <para>Libffi</para>
        <para>Переносимый, высокоуровневый интерфейс по различным соглашениям о вызовах. Программы во время компиляции могу не знать об аргументах, которые были переданы функции. Например, интерпретатору можно указать во время выполнения количество аргументов и указать их тип, для вызова функции. Libffi может использоваться в программах как "мост" от интерпретатора к скомпилированному коду.</para>
      </listitem>

      <listitem>
        <para>Libpipeline</para>
        <para>Библиотека для работы с подпроцессами гибким и удобным способом. Она необходима для пакета Man-DB.</para>
      </listitem>

      <listitem>
        <para>Libtool</para>
        <para>GNU libtool является общей библиотекой поддержки скриптов. Libtool скрывает сложность использования распределенных библиотек под последовательным, переносимым интерфейсом. Библиотека необходима для выполнения тестов других пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Linux Kernel</para>
        <para>Ядро операционной системы.</para>
      </listitem>

      <listitem>
        <para>M4</para>
        <para>Общий макропроцессор текста - полезный инструмент для выполнения сборки других программ.</para>
      </listitem>

      <listitem>
        <para>Make</para>
        <para>Программы которые автоматизируют процесс преобразования файлов из одной формы в другую. Чаще всего это компиляция исходного кода в объектные файлы и последующая компоновка в исполняемые файлы или библиотеки. Он необходим для сборки пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Man-DB</para>
        <para>Программы для поиска и просмотра страниц руководств. Он был выбран вместо пакета <application>man</application> благодаря превосходным возможностям интернационализации. Он содержит программу man.</para>
      </listitem>

      <listitem>
        <para>Man-pages</para>
        <para>Набор справочных руководств аLinux.</para>
      </listitem>

      <listitem>
        <para>Meson</para>
        <para>Инструменты для автоматизации сборки программ. Основная цель Meson - минимизировать затраты времени на конфигурирование системы сборки.</para>
      </listitem>

      <listitem>
        <para>MPC</para>
        <para>функции предназначенные для вычислений с плавающей запятой, целыми и рациональными числами с произвольной точностью. Он необходим для пакета GCC.</para>
      </listitem>

      <listitem>
        <para>MPFR</para>
        <para>Функции по работе с вычислениями с произвольной точностью. Они необходимы для пакета GCC.</para>
      </listitem>

      <listitem>
        <para>Ninja</para>
        <para>Утилита для сборки программ, фокусирующая на скорости. От других систем сборки  она отличается двумя основными аспектами: для работы используется свой формат входных файлов, созданных системой сборки более высокого уровня, а также предназначена для быстрой сборки программ.</para>
      </listitem>

      <listitem>
        <para>Ncurses</para>
        <para>Библиотека, предназначенная для управления вводом-выводом на терминал, в том числе , библиотека позволяет задавать экранные координаты (в знакоместах) и цвет выводимых символов. Предоставляет программисту уровень абстракции, позволяющий не беспокоиться об аппаратных различиях терминалов и писать переносимый код. Она необходима для некоторых пакетов.</para>
      </listitem>

		<listitem>
        <para>Openssl</para>
        <para>Инструменты управления и библиотеки, относящиеся к криптографии. Они полезны для предоставления криптографических функций для других пакеты, а также для ядра Linux.</para>
      </listitem>

      <listitem>
        <para>Patch</para>
        <para>Программа предназначенная для переноса правок (изменений) между разными версиями текстовых файлов. Информация о правке обычно содержится в отдельном файле, называемом &quot;заплаткой&quot; (<emphasis>patch</emphasis>), &quot;правкой&quot;
        или &quot;файлом правки&quot; (англ. patch file). Подобный файл, как правило, создается с помощью другой утилиты Unix — <application>diff</application>, позволяющей автоматически извлечь информацию о различиях в тексте файлов.
        Он необходим для выполнения сборки некоторых пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Perl</para>
        <para>Высокоуровневый интерпретируемый динамический язык программирования общего назначения, он необходим для установки и выполнения тестов некоторых пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Pkg-config</para>
        <para>Утилита, предоставляющая интерфейс для получения информации об установленных программных библиотеках, включающую в себя параметры для C или C++ компилятора, параметры для компоновщика, а также версию пакета.</para>
      </listitem>

      <listitem>
        <para>Procps-NG</para>
        <para>Программы контроля за процессами. Этот набор программ может оказаться полезным системным администраторам. Он также используется скриптами загрузки LFS.</para>
      </listitem>

      <listitem>
        <para>Psmisc</para>
        <para>Программы для отображения информации о запущенных процессах.Этот набор программ может оказаться полезным системным администраторам.</para>
      </listitem>

      <listitem>
        <para>Python 3</para>
        <para>Высокоуровневый язык программирования общего назначения, ориентированный эффективности работы разработчика и читаемости кода</para>
      </listitem>

      <listitem>
        <para>Readline</para>
        <para>Библиотека интерфейса командной строки и обработки строк. Она используется командным интерпретатором Bash.</para>
      </listitem>

      <listitem>
        <para>Sed</para>
        <para>Sed - потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных. Он необходим для многих пакетов LFS, на этапе конфигурирования.</para>
      </listitem>

      <listitem>
        <para>Shadow</para>
        <para>Программы для работы с паролями безопасным способом.</para>
      </listitem>

      <listitem revision="sysv">
        <para>Sysklogd</para>
        <para>Пакет Sysklogd содержит программы для записи системных сообщений в журнал, например, сообщений ядра.</para>
      </listitem>

      <listitem revision="systemd">
        <para>Systemd</para>
        <para>Системный менеджер, демон инициализации других демонов в Linux, пришедший на замену используемого ранее SysV. Его особенностью является интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяло существенно ускорить запуск операционной системы. Он используется многими коммерческими дистрибутивами.
        </para>
      </listitem>

      <listitem revision="sysv">
        <para>Sysvinit</para>
        <para>Система инициализации <application>init</application>, которая является родителем всех остальных процессов в Linux системе.</para>
      </listitem>

      <listitem>
        <para>Tar</para>
        <para>Обеспечивает возможности архивирования и извлечения почти всех пакетов, используемых в LFS.</para>
      </listitem>

      <listitem>
        <para>Tcl</para>
        <para>&quot;Командный язык инструментов&quot; - скриптовый язык высокого уровня. Он необходим для выполнения тестов некоторых пакетов LFS, и будет установлен только во временный инструментарий.</para>
      </listitem>

      <listitem>
        <para>Texinfo</para>
        <para>Система документирования и язык разметки, позволяющие создавать документы в разных форматах из одного исходного текста. Она используется в процедурах установки многих пакетов LFS.</para>
      </listitem>

      <listitem>
        <para>Util-linux</para>
        <para>Стандартный набор служебных утилит командной строки, такие как - утилиты для работы с файловой системой, консолью, разделами, и сообщениями.</para>
      </listitem>

      <listitem>
        <para>Vim</para>
        <para>Текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. Текстовый редактор является сугубо личным выбором для многих пользователей, и его можно заменить на любой другой, на ваш выбор.</para>
      </listitem>

      <listitem>
        <para>XML::Parser</para>
        <para>Модуль Perl который взаимодействует с Expat.</para>
      </listitem>

      <listitem>
        <para>XZ Utils</para>
        <para>Программы для сжатия и распаковки файлов. Она обеспечивает высокое сжатие и используется для распаковки пакетов форматов XZ и LZMA.</para>
      </listitem>

      <listitem>
        <para>Zlib</para>
        <para>Библиотека для сжатия и распаковки, которую используют некоторые программы.</para>
      </listitem>

    </itemizedlist>

</sect1>

